Benjamin Otte [Sat, 6 Apr 2019 00:40:29 +0000 (02:40 +0200)]
rgba: Add gdk_rgba_parser_parse()
This function is a (private) function to parse a GdkRGBA accoridng to
the CSS specs. We should probably use it for gdk_rgba_parse(), but that
would change the syntax we accept there...
This also introduces a dependency of libgdk on libgtkcss.
So far, no users for this function exist.
Benjamin Otte [Tue, 19 Mar 2019 04:46:59 +0000 (05:46 +0100)]
Resurrect the CSS parser from the tokenizer branch
So far that parser is unused.
Benjamin Otte [Tue, 9 Apr 2019 00:29:27 +0000 (02:29 +0200)]
cssparser: Add gtk_css_parser_consume_url()
Another slight renaming and semantics change.
Benjamin Otte [Tue, 9 Apr 2019 00:15:12 +0000 (02:15 +0200)]
cssparser: Add gtk_css_parser_resolve_url()
Another slight change of semantics and naming for the new parser.
Benjamin Otte [Fri, 5 Apr 2019 11:41:08 +0000 (13:41 +0200)]
cssparser: Split integer gettig into has/consume functions
We can't try to get an integer because ultimately integer getters
support the same shenanigans that numbers and percentages do with calc()
and whatnot.
Benjamin Otte [Fri, 5 Apr 2019 00:57:14 +0000 (02:57 +0200)]
cssparser: Add gtk_css_parser_try_delim()
For parsing single code point delimiters. Also port calc() to use this.
Benjamin Otte [Fri, 5 Apr 2019 00:16:00 +0000 (02:16 +0200)]
cssparser: Get rid of _gtk_css_parser_try_double()
Use gtk_css_parser_consume_number() everywhere instead.
Benjamin Otte [Thu, 4 Apr 2019 21:37:38 +0000 (23:37 +0200)]
cssparser: Add gtk_css_parser_consume_string()
Well, just rename _gtk_css_parser_read_string() for the new semantics,
but this sounds cooler.
Benjamin Otte [Mon, 1 Apr 2019 22:21:02 +0000 (00:21 +0200)]
cssparser: Add gtk_css_parser_try_at_keyword()
Benjamin Otte [Mon, 1 Apr 2019 09:47:53 +0000 (11:47 +0200)]
cssparser: Drop _gtk_css_parser_has_prefix()
Replace it with has_ident/has_function. The old function is a typical
string matching API, not a tokenizing one.
Benjamin Otte [Sun, 31 Mar 2019 21:22:18 +0000 (23:22 +0200)]
parser: Get rid of _gtk_css_parser_is_eof()
Use gtk_css_parser_has_token() instead.
Benjamin Otte [Sun, 31 Mar 2019 18:05:12 +0000 (20:05 +0200)]
css: Make font-weight an integer
This conforms to what Pango does and to the CSS4 spec. And it makes the
parsing code easier. So let's go for it.
Benjamin Otte [Sun, 31 Mar 2019 17:24:53 +0000 (19:24 +0200)]
cssimagescaled: Use gtk_css_parser_consume_function()
As part of that, adapt the syntax from
-gtk-scaled( [<image>, <int>?]# )
to
-gtk-scaled( [<image> <int>?]# )
because the commas should be used to separate distinct elements.
Note that almost nobody specifies the scale anyway.
Benjamin Otte [Sun, 31 Mar 2019 12:41:45 +0000 (14:41 +0200)]
easevalue: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 31 Mar 2019 11:39:58 +0000 (13:39 +0200)]
cssimagelinear: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 31 Mar 2019 10:40:53 +0000 (12:40 +0200)]
cssparser: Add gtk_css_parser_consume_ident()
And use it to fix the palette parser.
Benjamin Otte [Sun, 31 Mar 2019 09:39:24 +0000 (11:39 +0200)]
shorthand: Use gtk_css_parser_try_ident()
Benjamin Otte [Sun, 31 Mar 2019 00:17:44 +0000 (01:17 +0100)]
cssimageradial: Use gtk_css_parser_consume_function()
Benjamin Otte [Sat, 30 Mar 2019 23:52:22 +0000 (00:52 +0100)]
cssimagefallback: Use gtk_css_parser_consume_function()
Benjamin Otte [Sat, 30 Mar 2019 19:20:11 +0000 (20:20 +0100)]
cssimagerecolor: Use gtk_css_parser_consume_function()
Benjamin Otte [Sat, 30 Mar 2019 19:13:11 +0000 (20:13 +0100)]
reftests: Add a cross-fade syntax-checking reftest
Making sure all this newfangled code does what it says.
Benjamin Otte [Sat, 30 Mar 2019 15:02:58 +0000 (16:02 +0100)]
cross-fade: Make progress optional
Now we accept progress being unset and then dynamically compute it
on-demand.
Benjamin Otte [Sat, 30 Mar 2019 11:04:51 +0000 (12:04 +0100)]
cross-fade: Use gtk_css_parser_consume_any()
.. and gtk_css_parser_consume_function().
gtk_css_parser_consume_any() is a new function that implements the CSS
spec's any combinator ||.
Benjamin Otte [Tue, 26 Mar 2019 16:39:07 +0000 (17:39 +0100)]
cssimage: Make cross-fade() an array
The new spec at https://drafts.csswg.org/css-images-4/#cross-fade-function
allows infinite images to cross-fade and we want to, too.
Benjamin Otte [Mon, 25 Mar 2019 03:11:08 +0000 (04:11 +0100)]
cssimageicontheme: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 24 Mar 2019 23:40:59 +0000 (00:40 +0100)]
cssfiltervalue: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 24 Mar 2019 21:59:10 +0000 (22:59 +0100)]
csstransformvalue: Use gtk_css_parser_consume_function()
Benjamin Otte [Sun, 24 Mar 2019 20:11:53 +0000 (21:11 +0100)]
cssparser: Introduce gtk_css_parser_consume_function()
This is a vfunc-based function parser.
Benjamin Otte [Sun, 24 Mar 2019 13:36:55 +0000 (14:36 +0100)]
cssparser: Add gtk_css_parser_try_token()
Benjamin Otte [Sun, 24 Mar 2019 13:03:52 +0000 (14:03 +0100)]
cssparser: Introduce gtk_css_parser_try_ident()
... and gtk_css_parser_has_function().
Benjamin Otte [Sun, 24 Mar 2019 02:56:31 +0000 (03:56 +0100)]
cssparser: Get rid of _gtk_css_parser_begins_with()
Replace it with calls to gtk_css_parser_has_token().
Benjamin Otte [Sat, 23 Mar 2019 17:21:59 +0000 (18:21 +0100)]
parser: Add gtk_css_parser_has_token()
This is ithe first step towards converting the parsing code to use
tokens. For now, the topken type is just a magic enum value that only
works as-needed.
Benjamin Otte [Sat, 23 Mar 2019 02:27:56 +0000 (03:27 +0100)]
css: Split GtkCssLocation into its own file
And make the struct public, so we can use it in signal handlers.
Benjamin Otte [Mon, 18 Mar 2019 04:32:05 +0000 (05:32 +0100)]
csstokenizer: Add gtk_css_token_is_preserved()
Benjamin Otte [Fri, 15 Mar 2019 03:00:21 +0000 (04:00 +0100)]
tokenizer: Pass error arg to read_token()
Instead of an error vfunc, have the tokenizer vfunc take a GError
argument. Note that even when an error is returned, there is still a
token to be read.
Benjamin Otte [Fri, 4 Mar 2016 17:40:11 +0000 (18:40 +0100)]
css: Add GtkCssTokenizer
This is copied from an old branch of mine.
Benjamin Otte [Fri, 22 Mar 2019 03:20:17 +0000 (04:20 +0100)]
build: Add gtk-css static library
This library is meant to be the new CSS library that gets used from GDK,
GSK and GTK for string printing and parsing.
As a first step, move GtkCssProviderError into it.
While doing so, split it into GtkCssParserError (for critical problems)
and GtkCssParserWarning (for non-critical problems).
Emmanuele Bassi [Fri, 12 Apr 2019 17:26:52 +0000 (17:26 +0000)]
Merge branch 'vulkan-warning' into 'master'
vulkan: Add missing enumeration value
See merge request GNOME/gtk!740
Emmanuele Bassi [Fri, 12 Apr 2019 17:03:22 +0000 (18:03 +0100)]
vulkan: Add missing enumeration value
Vulkan 1.1.97 added VK_ERROR_INVALID_DEVICE_ADDRESS_EXT, and we now must
handle it.
Matthias Clasen [Fri, 12 Apr 2019 17:01:19 +0000 (13:01 -0400)]
inspector: Modernize action references
Now that we do inline editing, we need to
show this in a single line.
Matthias Clasen [Fri, 12 Apr 2019 16:35:06 +0000 (12:35 -0400)]
inspector: Drop binding info
Thia was relying on non-public implementation details
and was broken since 2015.
Matthias Clasen [Fri, 12 Apr 2019 15:20:26 +0000 (15:20 +0000)]
Merge branch 'inspector-props' into 'master'
inspector: Improve property list editing
See merge request GNOME/gtk!736
Matthias Clasen [Fri, 12 Apr 2019 03:42:31 +0000 (23:42 -0400)]
inspector: Improve property list editing
Replace the treeview with popups on the property
page with a listbox with inline editing.
Benjamin Otte [Fri, 12 Apr 2019 14:31:39 +0000 (16:31 +0200)]
boxlayout: Remove unused variable
Emmanuele Bassi [Sat, 6 Apr 2019 13:20:02 +0000 (14:20 +0100)]
ci: Use UTF-8 encoding for the test cover report
Since we're embedding text coming from the tests into the report, we
should specify an encoding for both the source JSON file and the target
XML file when opening them.
Emmanuele Bassi [Fri, 12 Apr 2019 12:54:08 +0000 (12:54 +0000)]
Merge branch 'issue-1821' into 'master'
Fix get_request_mode for GtkBoxLayout
Closes #1821
See merge request GNOME/gtk!737
Emmanuele Bassi [Fri, 12 Apr 2019 12:11:28 +0000 (13:11 +0100)]
Fix get_request_mode for GtkBoxLayout
The default GtkWidgetClass.get_request_mode() is implemented by
GtkContainer; now that GtkBox uses a GtkBoxLayout, we need to implement
it inside the layout manager to preserve the same behavior as the old
GtkBox.
Fixes #1821
Chun-wei Fan [Fri, 12 Apr 2019 10:08:36 +0000 (18:08 +0800)]
meson: Only use HarfBuzz fallback when needed
The current Meson releases have broken CMake support, meaning that it is
likely that HarfBuzz could not be located for Visual Studio builds
unless one handcrafts pkg-config files for it, which is both tedious and
error-prone.
Instead, use the existing mechanism for looking for the HarfBuzz headers
and libraries on Visual Studio first when it could not be found via
dependency(), and then use the fallback if it still could not be found.
Matthias Clasen [Fri, 12 Apr 2019 02:28:15 +0000 (22:28 -0400)]
inspector: Cometic fixes for controllers
Add a frame, and make the rows not activatable.
Matthias Clasen [Fri, 12 Apr 2019 02:06:16 +0000 (22:06 -0400)]
inspector: Make rows activatable
Rows containing just a switch should be activatable,
and toggle the switch.
Matthias Clasen [Thu, 11 Apr 2019 23:16:07 +0000 (19:16 -0400)]
inspector: Fix css autosave
We were creating the directory with improper permissions.
Matthias Clasen [Thu, 11 Apr 2019 22:58:40 +0000 (18:58 -0400)]
Adwaita: Add spacing to message dialogs
The text was running into the action area.
Benjamin Otte [Thu, 11 Apr 2019 21:36:28 +0000 (23:36 +0200)]
inspector: Enable by default
We don't want to stop people from being able to debug GTK applications
by default.
The keybinding also runs last in event delivery, so it doesn't override
existing keybindings anywhere and is therefor safe to enable.
The setting of course should remain, so people who want to lock down
installations, like for kiosks, can turn this off.
Aurimas Černius [Thu, 11 Apr 2019 19:50:00 +0000 (22:50 +0300)]
Updated Lithuanian translation
Matthias Clasen [Thu, 11 Apr 2019 17:23:03 +0000 (17:23 +0000)]
Merge branch 'frame-clock' into 'master'
gdkframeclockidle: Don't permanently skew frame time
Closes #1612
See merge request GNOME/gtk!731
Jakub Steiner [Thu, 11 Apr 2019 13:35:24 +0000 (15:35 +0200)]
Adwaita: OSD set semi-opaque again
- forgot the bling bling
Jakub Steiner [Thu, 11 Apr 2019 13:26:55 +0000 (15:26 +0200)]
Adwaita: less purple OSD style
- one of the bits that escaped the purple cast is the osd background color
Chris Williams [Tue, 9 Apr 2019 20:26:25 +0000 (16:26 -0400)]
gdkframeclockidle: Don't permanently skew frame time
Since commit
3b2f9395, the frame time may be set into the future, so
only ensure monotonicity, and don't store the offset. This prevents the
frame time from becoming out of sync with g_get_monotonic_time().
Fixes #1612
Daniel Mustieles [Tue, 9 Apr 2019 08:11:59 +0000 (08:11 +0000)]
Update Spanish translation
Chris Williams [Mon, 8 Apr 2019 20:02:32 +0000 (16:02 -0400)]
gdkframeclockidle: Remove unused struct member
compute_frame_time() has been using g_get_monotonic_time() instead of
GTimer since commit
7dfa4121.
Matthias Clasen [Mon, 8 Apr 2019 15:09:40 +0000 (15:09 +0000)]
Merge branch 'wip/cellrendererpixbuf-fallbacks' into 'master'
cellrendererpixbuf: Use fallback icons with icon-name
Closes #1809
See merge request GNOME/gtk!728
Iain Lane [Mon, 8 Apr 2019 13:52:49 +0000 (14:52 +0100)]
cellrendererpixbuf: Use fallback icons with icon-name
This gives us a better chance of finding an icon to show.
Closes: #1809
Matthias Clasen [Mon, 8 Apr 2019 12:59:06 +0000 (12:59 +0000)]
Merge branch 'pick-insensitive2' into 'master'
Make picking insensitive widgets work again
Closes #1816 and #51
See merge request GNOME/gtk!727
Matthias Clasen [Sun, 7 Apr 2019 21:36:40 +0000 (21:36 +0000)]
Rename things
Rename the can-pick property to can-target,
and redo the pick flags with more descriptive names.
Ask Hjorth Larsen [Sun, 7 Apr 2019 22:04:13 +0000 (00:04 +0200)]
Updated Danish translation of gtk
Matthias Clasen [Sun, 7 Apr 2019 20:34:12 +0000 (20:34 +0000)]
Keep a drawable check in gtk_widget_contains
If the widget is not drawable, it probably doesn't have
an allocation, so asking the question does not make much
sense.
Matthias Clasen [Sun, 7 Apr 2019 17:27:58 +0000 (17:27 +0000)]
Document GtkPickFlags
Matthias Clasen [Sun, 7 Apr 2019 17:23:17 +0000 (17:23 +0000)]
inspector: Allow picking insensitive widgets again
Use the new argument to gtk_widget_pick to allow picking
insensitive widgets.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/51
Matthias Clasen [Sun, 7 Apr 2019 17:23:06 +0000 (17:23 +0000)]
tooltip: Allow tooltips on insensitive widgets again
Use the new argument to gtk_widget_pick to allow picking
insensitive widgets.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1816
Matthias Clasen [Sun, 7 Apr 2019 17:19:09 +0000 (17:19 +0000)]
Add a flags argument to gtk_widget_pick
This will be used to let the inspector and other users
pick insensitive widgets again. For now, update all
callers to pass no flags, preserving the current
behavior.
Matthias Clasen [Sun, 7 Apr 2019 17:00:51 +0000 (17:00 +0000)]
widget: Drop the pick vfunc
The way to influence picking is to implement contains,
we no longer use the pick vfunc.
Matthias Clasen [Sun, 7 Apr 2019 16:11:20 +0000 (16:11 +0000)]
window: Stop implementing pick
Treat popovers as a special-case for now.
Matthias Clasen [Sun, 7 Apr 2019 16:03:27 +0000 (16:03 +0000)]
paned: Drop the pick vfunc
Implement contains on the handle, instead of pick on the paned.
Matthias Clasen [Sun, 7 Apr 2019 15:47:24 +0000 (15:47 +0000)]
gizmo: Add a contains_func
Let GtkGizmo override the contains() implementation.
Update all callers to pass NULL for the contains_func.
Matthias Clasen [Sun, 7 Apr 2019 15:13:52 +0000 (15:13 +0000)]
widget: Make contains just be about position
Leave out reactiveness considerations here,
pick will handle those.
Matthias Clasen [Sun, 7 Apr 2019 15:11:22 +0000 (15:11 +0000)]
widget: Make contains respect rounded borders
We have the api for this now.
Matthias Clasen [Sun, 7 Apr 2019 15:16:23 +0000 (15:16 +0000)]
Merge branch 'treeview-expander-fix' into 'master'
treeview: Make expanders work again
Closes #1814
See merge request GNOME/gtk!725
Matthias Clasen [Sun, 7 Apr 2019 12:16:20 +0000 (12:16 +0000)]
treeview: Make expanders work again
These were broken by the crossing event unification.
We are now generating some more crossing events, and
the treeview was not looking closely enough at the
ones it gets.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1814
Matthias Clasen [Sat, 6 Apr 2019 23:32:37 +0000 (23:32 +0000)]
NEWS: More details about transforms
Matthias Clasen [Sat, 6 Apr 2019 23:14:01 +0000 (23:14 +0000)]
Merge branch 'inspector-work' into 'master'
Inspector work
See merge request GNOME/gtk!724
Matthias Clasen [Sat, 6 Apr 2019 23:08:10 +0000 (23:08 +0000)]
inspector: Disable autoloaded custom css initially
This is a safeguard against possible crashing css
being autoloaded.
Matthias Clasen [Sat, 6 Apr 2019 23:03:25 +0000 (23:03 +0000)]
widget: Propagate display changes to the style context
When a root is set on a widget, the style context may
already exist. We need to make sure that the style context
has the right display set.
This was showing up as "css spillover" in the inspector.
Closes: #https://gitlab.gnome.org/GNOME/gtk/issues/1817
Matthias Clasen [Sat, 6 Apr 2019 22:09:23 +0000 (22:09 +0000)]
Merge branch 'inspector-fixes' into 'master'
Inspector fixes
See merge request GNOME/gtk!723
Matthias Clasen [Sat, 6 Apr 2019 18:19:40 +0000 (18:19 +0000)]
inspector: Warn if using the default display
Matthias Clasen [Sat, 6 Apr 2019 18:00:09 +0000 (18:00 +0000)]
inspector: Autosave css
Save and restore the contents of the css editor in a file.
Matthias Clasen [Sat, 6 Apr 2019 17:39:00 +0000 (17:39 +0000)]
inspector: Rearrange settings a bit
Keep only the software gl setting for GL, and put it together
with the simulate touchscreen setting in a 'misc' box. This
keeps all the 'show' options nicely grouped.
Matthias Clasen [Sat, 6 Apr 2019 15:46:14 +0000 (15:46 +0000)]
inspector: Clean up on finalize
Just a matter of cleanliness.
Matthias Clasen [Sat, 6 Apr 2019 15:36:10 +0000 (15:36 +0000)]
inspector: Fix a copy-paste error
We were stuffing the layout overlay into the updates_overlay
field, leaving the layout_overlay field unused.
Matthias Clasen [Sat, 6 Apr 2019 16:36:51 +0000 (16:36 +0000)]
gdk: Fix an indentation mishap
Commit
f1d61d55151eab774e6734c9ff51212a9c6cee73 inadvertedly
destroyed indentation in most of gdksurface.c. Fix this.
Piotr Drąg [Sat, 6 Apr 2019 14:45:45 +0000 (16:45 +0200)]
Update Polish translation
Matthias Clasen [Sat, 6 Apr 2019 12:59:56 +0000 (12:59 +0000)]
HighContrast: fix focus
We don't want to render focus rectangles on everything. With
the way focus is propagated nowadays, the theme has to selectively
render focus on certain widgets.
At the same time, we always want to render focus for this
theme, so use the focus pseudoclass, not focus(visible).
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1815
Matthias Clasen [Sat, 6 Apr 2019 12:09:37 +0000 (12:09 +0000)]
combo box: Remove leftovers in the header
These functions no longer exist and should not be in
the headers anymore.
Matthias Clasen [Sat, 6 Apr 2019 01:50:56 +0000 (21:50 -0400)]
Updates for 3.96
Matthias Clasen [Sat, 6 Apr 2019 00:49:40 +0000 (00:49 +0000)]
widget: Remove some leftover child-property code
Matthias Clasen [Sat, 6 Apr 2019 00:48:24 +0000 (00:48 +0000)]
builder-tool: Handle layout properties gracefully
If there are already layout properties in the ui
file, we shouldn't crash, even if --3to4 is given.
Matthias Clasen [Sat, 6 Apr 2019 00:47:46 +0000 (00:47 +0000)]
Remove a few stray <packing/> elements
These were leftovers from an earlier conversion
that did not properly strip empty elements.
Matthias Clasen [Sat, 6 Apr 2019 00:40:54 +0000 (00:40 +0000)]
Merge branch 'menushell-bandaid' into 'master'
Make menu activation work again
Closes #1796
See merge request GNOME/gtk!721
Matthias Clasen [Sat, 6 Apr 2019 00:20:21 +0000 (00:20 +0000)]
Make menu activation work again
After we stopped untranslatable delivering events, menus stopped
working 'the second time'. After some painful debugging, it appears
that this is caused by the menushell code deliberately grabbing
on the menubar *after* grabbing on the menu, causing events to
be deleivered to the wrong toplevel. This did not use to matter,
but now we drop these events.
Absent a more thorough rewrite of menus, just don't grab on
the menubar. This makes menu activation work again and does not
appear to have ill effects, on either Wayland or X.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1796
Emmanuele Bassi [Fri, 5 Apr 2019 20:01:06 +0000 (20:01 +0000)]
Merge branch 'wip/ebassi/ci-junit-report' into 'master'
ci: Add JUnit report for the test suite
See merge request GNOME/gtk!718
Matthias Clasen [Fri, 5 Apr 2019 19:58:56 +0000 (19:58 +0000)]
Merge branch 'gtk-4-file-containers-in-sidebar' into 'master'
gtkplacessidebar: Add loop devices
See merge request GNOME/gtk!289